package org.linlinjava.litemall.db.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.linlinjava.litemall.db.models.Goods;

import java.util.List;

public interface GoodsService extends IService<Goods> {
    /**
     * 获取热卖商品
     *
     * @param offset
     * @param limit
     * @return
     */
    public IPage<Goods> queryByHot(int offset, int limit) ;

    /**
     * 获取新品上市
     *
     * @param offset
     * @param limit
     * @return
     */
    public IPage<Goods> queryByNew(int offset, int limit) ;

    /**
     * 获取分类下的商品
     *
     * @param catList
     * @param offset
     * @param limit
     * @return
     */
    public IPage<Goods> queryByCategory(List<Long> catList, int offset, int limit) ;

    public IPage<Goods> querySelective(Integer catId, Integer brandId, String keywords, Boolean isHot, Boolean isNew, Integer offset, Integer limit) ;

    public IPage<Goods> querySelective(Integer goodsId, String goodsSn, String name, Integer page, Integer size) ;


    /**
     * 获取某个商品信息，仅展示相关内容
     *
     * @param id
     * @return
     */
    public Goods findByIdVO(Integer id) ;


    /**
     * 获取所有在售物品总数
     *
     * @return
     */
    public Integer queryOnSale() ;

    /**
     * 获取所有物品总数，包括在售的和下架的，但是不包括已删除的商品
     *
     * @return
     */
    public int count() ;

    public List<Long> getCatIds(Integer brandId, String keywords, Boolean isHot, Boolean isNew) ;

    public boolean checkExistByName(String name) ;

    public List<Goods> queryByIds(Integer[] ids) ;
}
